-
Notifications
You must be signed in to change notification settings - Fork 8
Add Butterfly Factorization #97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Butterfly Factorization #97
Conversation
@Shreyas-Ekanathan can you push your version? |
@@ -1,81 +0,0 @@ | |||
using BenchmarkTools, Random |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this file shouldn't be deleated.
src/butterflylu.jl
Outdated
🦋2!(view(Bu2, 1 : Mh, 1 : Nh), U₁u, U₁l) | ||
🦋2!(view(Bu2, Mh + 1: M, Nh + 1: N), U₂u, U₂l) | ||
|
||
#Bu1 = spzeros(M, N) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove commented out lines.
Project.toml
Outdated
LoopVectorization = "bdcacae8-1622-11e9-2a5c-532679323890" | ||
Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" | ||
PrecompileTools = "aea7be01-6a6a-4083-8856-8a6e6704d82a" | ||
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is the sparsearrays dep necessary?
src/butterflylu.jl
Outdated
using LinearAlgebra: Diagonal, I | ||
using LoopVectorization | ||
using RecursiveFactorization | ||
using SparseArrays, SparseBandedMatrices |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove using SparseArrays
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sorry about that, fixed now
@ChrisRackauckas I think this is ready to merge. Test failures are pre-existing (someone probably should look into them though) |
The infos are just negative what they should be? |
yes, but it's not clear to me whether that's true for all of them or why they would have switched. |
Rebase onto latest master |
* Update README.md * Fix negative info values for NoPivot() on Julia 1.11+ Julia 1.11 changed the convention for LU factorization info field when using NoPivot(). Now, when a zero diagonal is encountered during unpivoted LU factorization, the info field should be negative to distinguish it from pivoted factorization failures. This commit updates RecursiveFactorization to match Julia's convention: - In _generic_lufact!, return negative info when Pivot=false and zero diagonal found - In reckernel!, handle negative info values correctly when adjusting offsets Fixes JuliaLinearAlgebra#95 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Update ci.yml * Update ci.yml * Add VERSION check for Julia 1.11+ negative info convention Only use negative info values for NoPivot() on Julia 1.11 and later. Earlier versions should continue using positive info values. - Added NOPIVOT_NEGATIVE_INFO constant that checks Julia version - Use this constant to conditionally apply negative info values - Ensures backward compatibility with Julia < 1.11 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Update README.md --------- Co-authored-by: ChrisRackauckas <[email protected]> Co-authored-by: Claude <[email protected]> Co-authored-by: Christopher Rackauckas <[email protected]>
ed51f4e
into
JuliaLinearAlgebra:master
builds on the previous PR to implement a full butterfly factorization method